﻿import type { ISysGroup, IFrameworkGroup } from '@/type/fileattachment'

export interface ISysHrStaffNeedRequestBill {
  ID?: string | null;
  Approver: string | null;
  ApprovalTime: Date | null;
  ApprovalOpinion: string | null; //审批意见
  GroupId: string | null;
  Group?: ISysGroup;
  BillCode: string | null | undefined;
  BillStatus: number | null | string;
  WorkflowStatus: number | null | string;
  Remark: string | null
}

export interface ISysHrStaffNeedRequestBillVm {
  Entity: ISysHrStaffNeedRequestBill;
  ActionName: string | null;
  IsMyApprove: boolean | null;
  Remark?: string | null;

}

export interface ISysHrStaffNeedRequestBillView extends ISysHrStaffNeedRequestBill {

  ActionNames?: string;

}

export interface ISysHrStaffNeedRequestBillQuery {
  Approver?: string
  ApprovalTime?: Date | Date[]
  GroupId?: string
  BillCode?: string
  BillStatus?: number | string
  WorkflowStatus?: number | string
  Limit?: number
  Page?: number
}


export interface ISysHrStaffNeedRequestBillEntry {
  ID?: string | null;
  HireNumber: number;
  ApplyReason: string | null;
  ExpectedDate: Date | null;
  JobRequirement: string | null;
  EducationRequirement: string | null;
  MajorRequirement: string | null;
  GenderRequirement: string | null;
  AgeRequirement: string | null;
  OtherRequirement: string | null;
  GroupId: string | null;
  Group?: ISysGroup;
  JobPositionId: string | null;
  JobPosition?: ISysJobPosition;
  HrStaffNeedId: string | null;
  HrStaffNeed?: ISysHrStaffNeedRequestBill
  GroupName?: string | null;
  JobPositionName?: string | null;
}

export interface ISysHrStaffNeedRequestBillEntryVm {
  Entity: ISysHrStaffNeedRequestBillEntry;

}

export interface ISysHrStaffNeedRequestBillEntryView extends ISysHrStaffNeedRequestBillEntry {

}

export interface ISysHrStaffNeedRequestBillEntryQuery {
  ExpectedDate?: Date
  JobRequirement?: string
  EducationRequirement?: string
  MajorRequirement?: string
  GenderRequirement?: string
  AgeRequirement?: string
  GroupId?: string
  JobPositionId?: string
  HrStaffNeedId?: string
}

export interface ISysJobPosition {
  ID?: string | null;
  Code?: string | null;
  Name?: string | null;
  Description?: string | null;
  GroupId?: string | null;
  Group?: IFrameworkGroup;
  CreateTime?: Date | null;
  UpdateTime?: Date | null;
  CreateBy?: string | null;
  UpdateBy?: string | null;
}
